package com.dao;
import com.entity.Scrap;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface ScrapMapper{

	/**
	 * 获得Scrap数据的总行数
	 * @return
	 */
    long getScrapRowCount();
	/**
	 * 获得Scrap数据集合
	 * @return
	 */
    List<Scrap> selectScrap();
	/**
	 * 获得一个Scrap对象,以参数Scrap对象中不为空的属性作为条件进行查询
	 * @param obj
	 * @return
	 */
    Scrap selectScrapByObj(Scrap obj);
	/**
	 * 通过Scrap的id获得Scrap对象
	 * @param id
	 * @return
	 */
    Scrap selectScrapById(Integer id);
	/**
	 * 插入Scrap到数据库,包括null值
	 * @param value
	 * @return
	 */
    int insertScrap(Scrap value);
	/**
	 * 插入Scrap中属性值不为null的数据到数据库
	 * @param value
	 * @return
	 */
    int insertNonEmptyScrap(Scrap value);
	/**
	 * 批量插入Scrap到数据库,包括null值
	 * @param value
	 * @return
	 */
    int insertScrapByBatch(List<Scrap> value);
	/**
	 * 通过Scrap的id删除Scrap
	 * @param id
	 * @return
	 */
    int deleteScrapById(Integer id);
	/**
	 * 通过Scrap的id更新Scrap中的数据,包括null值
	 * @param enti
	 * @return
	 */
    int updateScrapById(Scrap enti);
	/**
	 * 通过Scrap的id更新Scrap中属性不为null的数据
	 * @param enti
	 * @return
	 */
    int updateNonEmptyScrapById(Scrap enti);

	/**
	 * 根据Scrap的scrapName进行模糊查询
	 * @return
	 */
	List<Scrap> selectScrapByName(String scrapName);


	/**
	 * 分页菜单列表
	 *
	 *
	 * @since 2016年8月11日 下午9:28:54
	 * @param search
	 * @return
	 */
	List<Scrap> getPageList(@Param("search") String search, @Param("subSQL") String subSQL);

	/**
	 * 多条删除
	 *
	 * @since 2016年9月25日 下午12:06:35
	 * @param idlist
	 * @return
	 */
	int deleteByPrimaryKeys(@Param("idlist")List<Integer> idlist);


	//根据scrap_code获取scrap_name
	String selectScrapNameByCode(String scrapCode);
}